[初心者向け]もうSSHクライアントは必要ない!?-Windows10からEC2に接続してSCPでファイルを送ってみよう

[初心者向け]もうSSHクライアントは必要ない!?-Windows10からEC2に接続してSCPでファイルを送ってみよう

実はWindows10もSSHクライアント無しでcmdでsshコマンドが使えるという話。 Windows10のコマンドプロンプトでsshコマンドを使ってEC2に接続したり、scpコマンドを使ってファイルを転送する方法について紹介します。
Clock Icon2020.04.24

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

みなさん、おはこんばんにちは! 新卒エンジニアのハウンです。

先週からコンサル部での研修がはじまり、毎日新しい知識の波に溺れそうなところです。?

今週はAmazon Linux2でアクセスログから指定された値を出す課題に挑戦しました。

今回の記事では課題を取り組んでいる際に、Windows10からEC2へ接続する段階で驚きの結果を見ましたので、その理由とEC2接続法について話してみようと思います!

WindowsでもSSHクライアント無しで接続できる?

皆さんはWindowsでSSH接続の際、どのツールを使用していますでしょうか?

定番な「PuTTY」や「Tera Term」を使用している方が多いと思います。私も普段EC2の勉強をする時にはTera Termを使っています。

ですが、今回はエラーメッセージとの苦戦中、何気なくcmdにsshコマンドを入力してみました。

そしたらなんと...

EC2サーバーに接続できたのです!!!? 開発環境のための設定も行っていなかった新品のノートパソコンからこの結果は驚きでした。

Windows10バージョン1803から、SSHクライアント搭載

実はこれが可能だった理由はWindows10 バージョン1803からは、SSHクライアントが組み込まれているからなのです。

そのため、特にシステム上で設定をしていなくても基本的にコマンドが使えるようになっています。

[Windowsの設定]‐[アプリ] - [オプション機能]で入ると、OpenSSH クライアントがインストールされていることが確認できます。

あと、Microsoft Docsを見るとscpコマンドも支援していることがわかります。

実践-SSH接続

では、実際にWindows10からEC2上のAmazon Linux2に接続してみましょう。

 

まずはcmdを実行して、以下のようにコマンドを入力します。

ssh -i ~.pem ec2-user@パブリックホスト名もしくはパブリックIP

"~.pem"にはEC2インスタンスの構築時に発行したpemの保存先、"パブリックホスト名もしくはパブリックIP"にはEC2インスタンスのパブリックDNSと書かれているものを入力してください。

入力すると上のように続けるかと問われますので、yesと入力しましょう。

少し待つと接続できたとわかる表示が出ます!

実践-SCPでファイルを転送

sshコマンドが作動することを確認しましたので、次はscpも試してみましょう。

その前に一旦"exit"を入力して接続を切ります。

 

ローカルに戻ったら下のコマンドを入力します。

scp -i ~.pem 転送するファイル ec2-user@パブリックホスト名もしくはパブリックIP:保存する名前.ファイル形式

"保存する名前"と"ファイル形式"は転送するファイルのものをそのまま入力して構いません。

入力すると転送されているところが見れますね。

では、もう一度EC2に接続してファイルが転送されているか確認してみましょう。

lsコマンドを入力するとファイルが保存されているのが確認できます!

"No such file or directory."のエラーが出てきたら?

scpコマンドを入力してファイルが探せないというエラーメッセージが出る場合、保存先での'¥'がエスケープ文字として認識されていることがあります。

その時は'¥'をもう一つずつ付けましょう。

実はこれ私がscpコマンドを最初に試した時に遭遇した問題ですが、他の方でも出やすいそうです。

最後に

Windowsも昔よりかなり楽な開発環境に変わっているということが感じられました。

情報量や使用者は少ないというところは変わりないのですが、それでも誰かの役に立てれば幸いです✿

 

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.